home *** CD-ROM | disk | FTP | other *** search
- % defines to make life easier for the macro package writer
- \def\macros#1{\def\macname{#1}\def\fetchman{\input b:m#1}}
-
- \macros{Basic} % Which macro package are we documenting?
- \input a:basic % set up the environment
- \ff{+nf +hl "tex USERS MANUAL\rDecember 1982"
- +fl "Mike Meyer\rPage \s#"}
- \f:9=ff12 % the fancy font fonts
- \def\FF{\f:9}
- \def\heading#1{\vskip 20pt{\bf #1}\vskip 10pt\par}
- \def\subhead#1{\vskip 20pt{\it #1}\vskip 10pt\par}
- \def\tex{{\rm T\FF E\rm X}} % define some usefull strings
- \def\metafont{{\ss METAFONT}}
- \def\tm{{\FF TM}}
- \def\cr{{\FF R}}
- \def\pfont{{\ss pfont}}
- \def\describe{\lftmarg +60\indent 0\indent -60}
- \def\bold#1{{\bf #1 }}
-
- \vskip 72 pt % set up the title page
- \ctrline{\bf SMALL tex USERS MANUAL}
- \ctrline{\bf For the \macname\ Macro Package}
- \vskip 24 pt
- \ctrline{Mike Meyer}
- \vskip 72 pt
-
- This users manual for the small tex text formatting system is
- intended for people familiar with some text formatter (not
- necessarily \tex) and computers in general. The reader is assumed
- to have used and to be familiar with the {\FF Fancy Font}
- typesetting system.
-
- \vskip 200 pt
- \ctrline{copyright $\copyright$ 1982, Mike Meyer}
- \eject
- % now start the paper
- \heading{Introduction}
-
- Small tex (`tex' is never capitalized) is a micro-computer text
- formatter based on Donald Knuth's \tex\tm\ computerized
- typesetting system. tex (see?) shares with \tex\ user-definable
- commands, multiple typefaces of various sizes and shapes, support
- for typesetting mathematics, and the ability to group text.
- Unlike \tex, tex does not work with a character-definition
- system, like \metafont, for output. Instead, tex uses {\FF Fancy
- Font}\tm\ from SoftCraft for output. This package is not as
- powerful as \metafont, and the missing abilities are reflected in
- tex as missing features. Likewise, a z80 CP/M\tm\ system isn't a
- DEC\tm\ 10, so many nice features of \tex\ that I considered
- dispensable were dispensed with.
-
- I wish to emphasize that tex is not meant for {\bf
- all} micro-computer text formatting purposes. It is intended
- specifically for formatting small documents that require more
- abilities than most printers supply. Specifically, it was
- designed to let me typeset papers for my courses in graduate
- mathematics - which called for characters not generally available
- on my printer. tex is also suitable for setting letters, etc.
- However, for anything longer than about 20 pages, I don't recommend
- it. I don't consider this an unreasonable restraint, as it takes
- about 4 hours to print a 20 page document in {\ss +rd 0} mode.
-
- \heading{What Does tex Do?}
-
- tex provides a {\it mapping} from its input to input for \pfont\
- that hopefully reflects the user's intent for the resulting
- document's appearence. Unfortunately, tex is {\bf dumb.}
-
- tex only knows about {\it words} and {\it lines.}
- A {\it word} is anything that has whitespace on both sides {\bf in
- the output.} Most especially, anything printed in math mode is
- considered to be a single word. A {\it line} is a single line of
- text in the output document.
-
- As tex maps input to output, it reads in words, one
- at a time, until the words won't fit on the output line it is
- preparing. Then tex outputs the words that will fit on
- the line, and starts the next line with whatever word wouldn't
- fit on the current line. This is insufficent since {\it
- pages} are also important. Since tex ignores them, it can't do
- anything about widowed lines - it doesn't know that they're
- widowed. Likewise, you may occasionally tell tex to go to the
- top of a page (with the {\ss eject} command) and tex, not
- realizing that it is already at the top of a page, will leave a
- blank page behind when it obeys your command.
-
- This behavior can be modified by magic characters in the input
- stream. tex considers the same characters magic that \tex\
- considers magic in its {\ss basic} package: `\\', `\%', `$\$$',
- `\{', and `\}'. These have the same meanings as the do in \tex,
- but cannot be changed as they can in \tex. They can be added to
- the output stream in the same manner as they are in \tex: by
- preceding them with a `\\' character, which effectively makes
- them commands.
-
- The `\\' character is used to indicate to tex that a command
- follows. Commands are {\it action} words - they tell tex to do
- something, usually immediately.
-
- The `\%' character signals a comment. When tex sees a `\%' in the
- input stream, it ignores any preceeding whitespace, all
- characters to the end of the line, and any whitespace following
- the end of the line. {\it Whitespace,} if you were wondering,
- consists of blanks, tabs, and new line characters - things that
- don't leave ink on the paper.
-
- The $`\$'$ character indicates a change of mode - to or from one
- of the two math modes. $`\$''$s are used in pairs, either as:
- \ctrline{\ss$\$$text for math mode$\$$} or:
- \ctrline{\ss$\$\$$text for display mode$\$\$$} In math mode and
- display mode above, tex recognizes extra commands, and ignores
- spaces (except as needed to separate out commands).
-
- Finally, the `\{' and `\}' characters group text and arguments to
- commands. When freestanding, they indicate that commands that
- alter global properties of the text should apply {\bf only} to
- the text contained in them. These commands will be noted as we
- encounter them. For commands that require textual arguments, `\{'
- and `\}' set off arguments that are longer than one character.
-
- The following sections will discuss tex input syntax, the builtin
- commands for tex, and the \macname\ macro package in particular.
- Examples will be drawn from the input used for the manual. In
- particular, references to "line <number> of the input" refer to
- the appropriate line number in the file {\ss texuman.tex.} Also,
- there are occasional references to things done nearby in the
- text. These also indicate that you should check the appropriate
- input file. Therefore, if you have not printed off copies of the
- tex source for this manual (both {\ss texuman.tex} and
- {\ss\macname.tex}) you should do so now. I recommend {\ss pip
- prn:=} to get numbered listings.
-
- \heading{What the Magic Characters Do}
-
- As previously mentioned, there are several magic characters that
- change the way tex behaves. These are `\\', `\%', `$\$$', and the
- curly braces `\{' and `\}'. This section discusses their
- behavior and use in some detail.
-
- \subhead{The Command Character and Command Formats}
-
- The magic character `\\' introduces a tex command. Commands to
- tex have several formats. The basic format for all commands is a
- `\\' character, followed by the name of the command, possibly
- followed by arguments. In any of the formats, any following
- whitespace is ignored by tex. Therefore, if you want the output
- from a command followed by a space, you should probably issue a
- `hard space' command. This is usually {\ss`\\\ '.} If you are not
- sure, you can always force tex to output a space by using the
- string {\ss \{\}} followed by a space.
-
- Command names come in two forms. The first consists of a single
- nonalphabetic character. Examples would be the commands used to
- get magic characters into the text. Around line 190 in the input
- is a good example of this type of thing. The second form consists
- of a string of alphabetic characters terminated by some
- nonalphabetic character. Usually, this nonalphabetic character is
- a blank. In this form, the case of the first character is
- significant, but the case of any following characters is ignored.
- For example, {\ss \\sigma, \\sIGMA,} and {\ss \\sIGma,} are all
- the same command, and all different from {\ss \\Sigma.}
-
- Commands usually have either one or zero arguments. Examples of
- the first case include commands to insert character strings into
- the text stream, as in the {\ss tex} command used on line 26 of
- the manual, in the abstract. The other use for commands without
- arguments is to change some global parameter of tex, say the
- typeface being used to print characters. The {\ss FF} command on
- line 12 of the input is a good example of that.
-
- If a command has a single argument, this command is known as a
- {\it token.} Tokens come in two forms. The general case is that
- they are a sequence of text between `\{' and `\}.' In such cases,
- {\bf the argument is limited to 1024 characters.} An example of
- this form is the {\ss macros} command on line 4 of the document.
- The argument to this command is the string {\ss \macname.} The
- other form for a token is a single, non-whitespace character.
- Generally, these are used after the non-alphabetic commands, as
- in {\ss \\+x,} which would be the command named {\ss +} with an
- argument of {\ss x.}
-
- Finally, there are the commands which have a strange argument
- syntax. These either require more information, or are done in
- some specific manner to be compatible with \tex. These commands
- are {\ss def, vskip, hskip, f:, input} and {\ss math:.}
-
- \subhead{Comments}
-
- Comments in tex are introduced by the character `\%', and
- continue from the \%\ to the end of input text line. When a bare
- \%\ is seen, tex will ignore any white space preceding the \%,
- any text between the \%\ and the end of the line, and any
- whitespace following the comment. For examples of comments, see
- the first 20 or so lines of the input for this document. To get a
- \%\ into the output text, use the {\ss \\\%} command.
-
- \subhead{The Math Modes}
-
- \tex\ was originally designed for typesetting text with a high
- content of mathematics. tex has the same intent, and uses the
- \tex\ techniques for specifying equations. Specifically, an
- equation is introduced by either `$\$$' or `$\$\$$'. A single
- $\$$ introduces an inline equation, like $a=3x+b.$ The
- double $\$$, $\$\$$, introduces an equation centered on
- a line by itself, as: $$a=3x+b$$
-
- While in math mode, tex changes to an italic-like font for normal
- characters. Any whitespace in an equation in math mode is
- ignored, except for the space command `\\\ '. The advantage of
- math mode is that a {\bf large} number of commands become
- available to output symbols not normally available. A complete
- list of these commands can be found in the appendix. Those of
- general interest are printed here, as pairs of {\it name, graphic
- representation}:{\fill 0\ss{}
-
- \lft{$\$$, $\$$} \ctr{$\#$, $\#$} \rt{dag, $\dag$}
- \lft{ddag, $\ddag$} \ctr{ldots, $\ldots$} \rt{ldotss, $\ldotss$}
- \lft{circ, $\circ$} \ctr{bullet, $\bullet$} \rt{copyright, $\copyright$}
- \lft{section, $\section$}}
-
- In addition, the two math mode commands {\ss +, -} generate
- superscripts and subscripts, and are occasionally useful outside
- of equations.
-
- As in \tex, there are lots of techniques for making the equations
- from tex look better than just typing commands in math mode.
- These will be discused in the next version of this manual.
-
- \subhead{Nesting Text and Tokens}
-
- The characters `\{' and `\}' are used in tex to group arguments
- to commands, and to indicate {\it environment nesting.} Before I
- can discuss the brace characters, I need to discuss environments,
- and the nesting of environments.
-
- It must be understand that the text formatting done by tex does
- not take place in a vacuum. The output of tex is governed by
- several knobs of tex that the user can set. These knobs comprise
- such things as the current typeface, the margins, etc. The
- current {\it environment} is the current setting of all of tex's
- knobs.
-
- The {\it nesting} of one environment inside of another implies
- that the environment is changed temporarily for a piece of text,
- and after the text is processed, the environment is restored to
- its previous state. This concept will be familiar to anyone wh
- has worked with an ALGOL-like language, and indeed works in a
- similar manner. You can nest an environment inside of an
- environment that is already nested. In fact, you can nest
- environments in this manner arbitrarily deep (until you run out
- of stack space, anyway). This facility is very powerful, and
- makes many things easy that would be difficult in a text
- formatter such as roff.
-
- In tex, environments are nested with the pair of characters `\{'
- and `\}.' When not used to delimit arguments, the character `\{'
- indicates that a new level of environment nesting is being
- entered. Commands that change the current formatting environment
- may be issued, and will affect only the text enclosed between the
- open and close braces. To see how this nesting works, consider the
- subheadings in the next section. These nest an environment using
- an italic typeface for the main text of the subheading, and nest
- another environment inside of that one to use a sans serif
- typeface for the command names.
-
- {\lftmarg +20\indent 0\indent -20\sc The true value of this
- technique may be seen in this paragraph, which change the margin
- and indentation to become an outdented paragraph, and changes the
- typeface to script. Then, when the paragraph is finished, the
- environment closed, and things will return to normal, regardless
- of what `normal' was before.}
-
- Likewise, environment nesting can be used in letters. For
- example, a typical heading might look something like:
-
- {\fill 0{\lftmarg 450{}
- P.O. Box 1749
- Norman, OK 73070
- Jan. 20, 1982}
-
- Hank Harlison
- Dr. Mobs Urinal
- Somewhere, CA xyzzy
- }
-
-
- Find the commands in the source file that were used to produce
- this text to see how easy this is for tex, and then compare it to
- what would have to be done in a roff-like formatter.
-
- The other use for the brace characters is to delimit an argument
- to a command. This is discussed fully in the subsection on
- command characters and formats. The important thing to note at
- this point is that the braces used to delimit an argument {\bf do
- not cause environment nesting}. In some cases, the command can be
- built to cause this to happen. None of tex's builtin commands do
- this.
-
- \heading{The Builtin Commands to tex}
-
- Following is a list of the commands that tex will always know
- about, no matter what macro package you are using. This list is
- not a complete list of all the commands a normal tex user will use,
- but merely covers those that are useful for setting
- up a document. There are other builtin commands that will
- probably be useful if you are building or modifying a macro
- package. See the Appendices for a complete list of builtin
- commands. The majority of the commands normally used will
- probably be defined in a macro package. See the following
- section for a list of these commands.
-
- \subhead{The {\ss def} Command}
-
- The single most useful builtin command is {\ss def.} It allows
- the user to define new commands that look, and act, just like
- builtin tex commands. Defined commands can have either alphabetic
- or non-alphabetic names, and can have either of the two standard
- argument forms - none, or a single token.
-
- Examples of the {\ss def} command can be found on lines 9 through
- 15. Only lines 10 and 11 define commands with arguments. The
- other lines all demonstrate the standard, non-argument {\ss def}
- command format:
- \ctrline{\ss \\def\\name\{text of define\}}
-
- This string in the input text causes the command {\ss name} to be
- defined, such that every time the string {\ss \\name} appears in
- the input stream, {\ss text of define} will appear in the output
- stream. For example, the defintion for {\ss tex} appears on
- line 13. This line defines the {\ss tex} command such that
- every time the string {\ss \\tex} appears in the input, the
- string {\ss \{\\rm T\\FF E\\rm X\}} will be fed to tex, causing
- the symbol \tex\ to be printed on the page.
-
- The second form of the {\ss def} command is shown on lines 10 and
- 11 - a {\ss def} command with an argument. The general form of
- this is:
- \ctrline{\\def\\name#1\{text with possible #1 expansion\}}
-
- This form of the {\ss def} command works the same as the
- argumentless form of {\ss def,} except that, when the text for
- the definition is being used by tex, any occurence of the string
- {\ss #1} will be replaced by the argument. For example the {\ss
- heading} command, which is defined on line 10, when used on line
- 33 will expand to the string {\ss\{\\vskip 20pt\{\\bf
- Introduction\}\\vskip 10pt\\par\}.}
-
- A particularly good example of the power of the {\ss def} with a
- single argument can be found on line 2 of the input. This line
- defines the {\ss macros} command, which has one argument.
- Immediately below this, on line 4, the {\ss macros} command is
- used, with the argument of {\ss \macname.} This causes the text
- of the {\ss macros} command to be read by tex, which defines two
- more commands - the {\ss macname} command, and the {\ss fetchman}
- command. The {\ss macname} command just puts the argument to the
- {\ss macros} command in the input stream. The {\ss macname}
- command is used in the preceding sentence to get the argument of
- the {\ss macros} command on line 4 into the text, and on line 19
- to get the name of the macro package this manual documents into
- the subtitle. The {\ss fetchman} command tells tex to input the
- parts of the manual that are specific to some macro package, and
- is used to do so later on in this document. Note that the {\ss
- macros} command demonstrates that you can use the {\ss #1}
- sequence in a definition expansion as often as needed. It is left
- as an exercise to the reader to determine if a definition can
- define commands with arguments, and how this would be done if it
- can be done.
-
- \subhead{Positioning Commands - {\ss vskip, hskip, ctr, rt, lft, eject}}
-
- There are five commands built in to tex for positioning text on
- the page. These are {\ss hskip, vskip, ctr, rt, lft} and {\ss
- eject.} The only two that will generally be used are {\ss vskip}
- and {\ss hskip.} These both have the same format: \ctrline{\ss
- \\hskip xx pt} or \ctrline{\ss \\vskip yy pt}
-
- {\ss hskip} causes a {\bf h}orizontal {\bf skip} in the output
- text of xx {\it pts.} A {\it pt} (for hskip) is one 120$\+{th}$ of
- an inch. For example, the following text is produced by the
- input sequence {\ss |\\hskip 50 pt|}:|\hskip 50 pt|
-
- {\ss vksip} causes a {\bf v}ertical {\bf skip} in the output text
- of yy pts. For {\ss vskip,} a pt is {\bf one 72$\+{nd}$} of an
- inch. {\bf NOTE THE \underline{DIFFERENCE}} between the unit for
- {\ss vskip} and {\ss hskip.} This is unfortunate, but it is also
- unavoidable, being imposed by {\FF Fancy Font}. An example of the
- use of {\ss vskip} is in the definition for {\ss heading} and
- {\ss subheading,} where {\ss vskip} is used to get appropriate
- amounts of vertical spacing around the headings.
-
- In both {\ss vskip} and {\ss hskip,} the string {\ss pt} is {\bf
- required.} If it is left off, tex will complain, and eat the
- character following the {\ss v[h]skip} command.
-
- The {\ss eject} command is used to get to a new page. An example
- of this is seen on line 31, where it is used to get to a new page
- to start the manual after the title page has been printed. As has
- been pointed out before, tex does not know about pages, so {\ss
- eject} issued at the top of a page will cause a clean sheet of
- paper to be printed. For this reason, it is inadvisable to use
- lots of ejects or, if you do use lots of ejects, to number
- your pages.
-
- The three commands {\ss lft, rt} and {\ss ctr} are relatively
- dangerous, and should only be used by experienced tex users:
- those who know what the commands actually do. In general, the only
- place they will be used is in producing `tables,' or the closest
- approximation that tex can make to tables. For an example of this,
- see the section around line 200 in the input document on math
- mode.
-
- The only really useful feature any of these offer is centering
- lines of text. Check the definitions provided by the macro
- package you are using for a specific centering command.
-
- \subhead{Fill and Nofill}
-
- One of the nonstandard form commands is the {\ss fill} command.
- Fill affects the behavior of tex in a major way. The general form
- is {\ss \\fill x,} where x is either zero or one. If x is one,
- then tex behaves as previously described, treating newline
- characters as spaces, and packing as many words per line as
- possible. If x is zero, then tex {\bf stops doing word filling.}
- This means that every newline character in the input causes one
- newline in the output. Of course, if a line would be to long to
- fit on the page, tex will break it if you are not in fill mode.
- Additionally, tex does not justify the right margin when in it is
- not in fill mode.
-
- {\fill 0
- For example, this text is not
- filled in. You can see the difference
- it makes in the output.}
-
- {\ss fill} is useful for such things as addresses on letters,
- tables, etc. Note that fill is one of the global formatting
- parameters for tex, so it is restored to its old value when
- leaving a nested environment. The tables in the discussion of
- math mode demonstrate this.
-
- \subhead{Paragraph Commands - {\ss par, indent, lftmarg}}
-
- In general, tex does not know about paragraphs. However, the
- three commands {\ss indent, lftmarg} and {\ss par} affect the shape
- of the document by affecting the way paragraphs are laid out on
- the page.\par The simplest of these is {\ss par.} {\ss par} is
- causes tex to start a new paragraph {\bf immediately.} For
- example, this paragraph was started with a {\ss par} command in
- the input stream. Note that if you are in fill mode, two
- consecutive newline characters are synonymous with the {\ss par}
- command. This is usually preferable, since most text editors that
- know about paragraphs will recognize that sequence for a
- paragraph. Additionally, it visually breaks out paragraphs in the
- input.
-
- {\ss lftmarg} and {\ss indent} are used to change the shape of a
- paragraph. {\ss lftmarg} is used to set the left margin of the page,
- and {\indent} is used to set the amount of paragraph indentation.
- The form for both {\ss lftmarg} and {\ss indent} is the same:
- \ctrline{\ss \\lftmarg sxx} or \ctrline{\ss \\indent sxx} In these
- forms, the {\ss xx} is some number of pts as defined for {\ss hskip},
- one 120$\+{th}$ of an inch. The {\ss s} in the argument is used to
- allow finer control. If it is a blank, the value of {\ss lftmarg} or
- {\indent} is set to the numeric value of xx. If s is a `+' (or
- `-'), then the value of xx is added (or subtracted) from the
- current value of {\ss lftmarg} or {\ss indent.}
-
- Since both {\ss lftmarg} and {\ss indent} are part of texs
- formatting environment, these values will nest with curly braces,
- so some rather nice effects can be achieved. For example, a
- quotation can be done by setting up a block of text in curly
- braces that start with {\ss \\lftmarg +20.} This will indent the
- paragraph(s) in the quotation by 1/6$\+{th}$ of an inch.
- Similarly, outdented paragraphs can be set up by changing the
- left margin to an appropriate value, then setting indent to 0,
- and finally subtracting whatever you deem appropriate from
- indent. See the appendices for examples of this.
-
- \subhead{Miscellaneous Commands}
-
- Finally, there are four commands varying in usefulness from
- considerable to nearly none. These don't fit in any of the above
- sections, as each is unique.
-
- The most useful of these three commands by far is the {\ss input}
- command. You will use it in almost every document you use tex on,
- generally to fetch the macro package you need for that document.
- The syntax of the {\ss input} command is: \ctrline{\\input filename}
-
- This causes tex to go look for the file {\ss filename.tex}, and
- start reading input from that file. This input is inserted
- directly into the stream, in the middle of the word if that's where
- the {\ss input} command occurred. Inputting text via the input
- command is {\bf not} like nesting text inside a pair of curly
- braces - any changes made to the global environment in the input
- file will affect text following the {\ss input} command. For
- examples, see lines 2 and 5 in the input text.
-
- The second command is the {\ss underline} command. This command
- has a single token as an argument, as in {\ss
- \\underline\{text\}.} This will cause {\ss text} to be
- underscored. {\ss underline} obeys all the constraints placed on
- normal, one-argument commands.
-
- The third command is the {\ss ff} command. This command passes a
- single argument to \pfont\ when it is invoked by tex. Lines 6 and
- 7 in the input show how I used this to put headers and footers on
- the manual. Note that only the last occurrence of this command in
- the text is actually used.
-
- Finally, there is the {\ss f:} command. This command is used to
- declare a {\FF Fancy Font} font file to be associated with a font
- number, and to change to that font during the input stream.
- Normally, there are only two font numbers you can use, 8 and 9.
- The syntax to associate a font file with font number 8 is: {\ss
- \\f:8=file}. To cause a change to font number 8, the command {\ss
- \\f:8} is issued. Normally, you won't use this version of the
- command, as you (or whoever wrote the macro package you are
- using) will have defined a command to change fonts for you. Lines
- 8 and 9 in the input file show font 9 being associated with the
- file ff12.fon, and the the command {\ss FF} being defined to
- change to that font. From then on, when I want to use that font
- (like I did in this paragraph), I issue the {\ss FF} command.
-
- \heading{Making use of the \macname\ Macro Package}
-
- \fetchman
-
- \heading{Caveats}
-
- This manual is not the last word on using tex. It is meant to be
- enough of an introduction to let new users start with tex, and
- get some work done. It does not document all the features and
- behavior of tex: the source code does that. If you don't have the
- source, somebody is distributing copies of tex in violation of
- the release agreement. Get in contact with me in that case.
-
- If you have problems, or need help with tex, get in contact with
- me. The appropriate addresses are currently:
-
- {\fill 0
- U.S. Post Offal:{\lftmarg +50
- Mike Meyer
- P.O. Box 1749
- Norman, OK 73070}
-
- Bell Telephone:{\lftmarg +50
- 405/360-2508}
-
- ARPANet:{\lftmarg +50
- mwm@okc-unix}
-
- UUCPNet:{\lftmarg +50
- decvax!duke!uok!mwm}
-
- CNet:{\lftmarg +50
- The Oklahoma Cnode - Ishtar: 405/329-1373}}
-
-
- \heading{Appendix A}
-
- This appendix is the most important single part of tex users
- manual. It lists all the error messages that tex issues. The
- format of an error message is {\ss tex: text of error message.}
- The following list contains the text of the error message,
- followed by comments about the probable cause and possible fixes.
-
- {\describe
-
- \bold{Invalid file name:} You told tex to format a file with a
- name that is longer than is valid for the operating system. File
- names used with the {\ss input} command cannot contain `.'
- character. If you used a `.' in such a file name, the {\ss
- Invalid file name} error message can be issued. In either case,
- check the filename on the command line, or in the appropriate
- {\ss input} command.
-
- \bold{Can't open file:} tex couldn't find the input file. Check
- the spelling of the filename on the command line or in the
- appropriate {\ss input} command.
-
- \bold{Can't create file:} tex couldn't create the output file.
- Possibly your disk is full.
-
- \bold{Missing right brace in file:} There is a missing right
- brace in the named file. Verify that every open brace has a
- matching close brace.
-
- \bold{Document completed in math mode} tex found the end of the
- file while it was in math mode. You undoubtedly forgot to put the
- final $\$$'s on math mode or display mode text. Use the {\FF Fancy
- Font} {\ss +sd} mode to find where tex stops outputting spaces.
- This is probably where the missing $\$$ belongs.
-
- \bold{Negative left margin, left margin set to 0} You tried to
- change the left margin to a negative value. It was set to zero.
- You probably tried a {\ss lftmarg} command with a decrement
- argument that was larger than the current left margin.
-
- \bold{Indent to small, set to:} You tried to change the indent to
- a value that, when added to the left margin, created a negative
- offset. tex set the indent to the negative of the left margin,
- which is probably close to what you wanted (pray, pray). Look for
- sequences like {\ss \\indent 0\\indent -x} where x is larger than
- the value of the left margin.
-
- \bold{Can't create temp file} tex couldn't create the file it
- uses for passing parameters to \pfont. Possibly your disk is
- full.
-
- \bold{Write error on file:} The write to the file tex uses for
- passing parameters to \pfont\ failed. Possibly your disk is
- full.
-
- \bold{Can't execute pfont} tex couldn't find the \pfont\ command.
- Check to see that it is on the correct disk.
-
- \bold{Out of buffer space} tex ran out of buffer space for
- input. This is highly unlikely. The only thing I can think of
- that would cause it is having the margins set to allow a large
- number of characters per line (either wide margins or small
- characters, or both), and being in math mode.
-
- \bold{Internal error in mathmode: inchar =} tex found itself in
- display mode while not in math mode. Write down the entire output
- line and get a hacker to look at your input and the version of
- tex you are running.
-
- \bold{Leaving display mode with $`\$'$} You closed display mode
- text with a single `$\$$.' Either you closed display mode
- incorrectly, or you forgot to close some math mode text. In the
- latter case, you should also get {\ss Math only command$\ldotss$}
- messages.
-
- \bold{Leaving math mode with a $`\$\$'$} This is the converse of
- the previous error message. The reasons and fixes are the same.
-
- \bold{Domath compiler error!} Something that shouldn't be
- possible happened. Write down the error message, and get a hacker
- to look at the your tex input, the source for the version of tex
- you are running, {\bf and} the version of the compiler that was
- used to compile it.
-
- \bold{Illegal command:} tex found a command that it didn't
- recognize. You probably made a typo in the command name. Check
- your spelling.
-
- \bold{Illegal font command:} There is a command that looks like
- a font command ({\ss \\f} followed by a non-alphabetic character)
- that is not a valid font command. Normally, font commands are set
- up in the macro package, so this shouldn't occur for the normal
- user. If it does, check the macro package you are using.
-
- \bold{Illegal font character:} A font or math command occured
- in the text that changed to an illegal font. See the previous
- error meesage for discussion.
-
- \bold{Can't open font file:} Somebody is trying to use a font
- file that doesn't exist. Once more, check the macro package you
- are using. Also verify that all the font files it uses are where
- it expects them.
-
- \bold{Bad font file:} The named font file contains data that tex
- doesn't understand. Possibly it or tex is corrupt. Get a fresh
- copy of the files. If that fails, verify that the version of tex
- you are using is compatible with the \pfont\ you are using.
-
- \bold{Invalid character:} You tried to use the builtin {\ss
- char} to print a non-ascii character. If you don't use the {\ss
- char} command, check the macro package you are using.
-
- \bold{Math only command issued outside math mode} The math mode
- commands complain about this if they are used outside of math
- mode. In most cases, the command will do what you wanted, but not
- fixing the cause of the problem is bad form. If you get many of
- these, you probably forgot to close some math mode text properly.
-
- \bold{Bad define character.} A {\ss def} command was encountered
- that didn't end in a `\\'. Find the appropriate define, and fix it.
-
- \bold{Define too long:} You tried to define a command whose name
- was longer than tex can accept. Change the name of the defined
- command.
-
- \bold{Command too long:} You issued a command that was too long.
- This is an illegal command, as you couldn't have defined it in
- the first place. Find the occurence of the substring that tex
- printed, and change it to a legal command.
-
- \bold{Bad define:} The name of a defined command was not
- followed by either a `\{' or a `$\#.$' Find the appropriate {\ss
- def} command and fix it.
-
- \bold{bad define parameter.} You tried to use a parameter number
- other than 1 in a define. Currently, tex only allows one
- parameter on a command. Change the appropriate define.
-
- \bold{Too many defines:} The number of allowable defines in tex
- has been exceeded. The named command was not defined. The fix is
- either to use fewer defines, or reconfigure tex to allow more
- defines.
-
- \bold{Out of string space} You have run out of memory. Either
- get more memory, decrease the size of defined commands, or
- reconfigure tex.
-
- \bold{Illegal command \\math} The builtin command {\ss math} has
- been misused. Change the usage to correspond to {\ss \\math=x,}
- where {\ss x} is an appropriate font number.
-
- \bold{Need `pt' to follow hskip number} You left off the {\ss
- pt} from an hskip command. tex will eat the charcter following
- the misformed hskip command. Fix the offending hskip.
-
- \bold{Need `pt' to follow vksip number} Identical to the
- previous error, except that it applies to vskip instead of hskip.
-
- \bold{Input token too long} An argument to a command exceeded the
- maximaum length. Check commands with long arguments, and break
- the offending command up into two separate commands.
-
- } % end of the appendix A
-
- \heading{Appendix B}
-
- This appendix describes the builtin commands of tex. For each
- command, its form and usage is is discussed, as well as its
- exact behavior in terms of the \pfont\ commands that it issues.
- This appendix will probably be of use only to those building
- macro packages. Everybody should be aware of the names of the all
- the builtin commands, as you cannot use these names for defined
- commands.
-
- {\describe
-
- \bold{f} The {\ss f} command is used to change fonts, or to
- associate a font file with a font number. The font numbers
- currently valid are 0 through 9, and attempts to use any others
- will (hopefully) result in error messages. The form used to
- associate a font file with a font number is {\ss \\f:x=name,}
- which associates font number {\ss x} with font file {\ss
- name.fon.} This causes no \pfont\ commands to be issued, but does
- cause tex to load the named font file. The form used to change to
- a font number is {\ss \\f:x}, which changes to font {\ss x.} This
- causes the \pfont\ command {\ss \\fx} to be issued.
-
- \bold{math} The {\ss math} command is used to tell tex which font
- is to be use for math mode. The format is {\ss \\math:x,} which
- causes font number {\ss x} to be used for math mode text.
-
- \bold{def} This defines a command, and its use is discussed in
- the main body of the manual. It causes no \pfont\ commands to be
- issued.
-
- \bold{fill} The {\ss fill} is used to turn fill mode on and off.
- Its use is discussed in the main body of the text. The current
- fill mode is part of the tex environment. If used to turn fill
- and justification on, a {\ss \\j} command is issued to \pfont.
- Otherwise, a {\ss \\k} command is issued to \pfont.
-
- \bold{lftmarg} This command is used to change the left margin. Its
- use is discussed in the main body of the text. The left margin is
- part of the tex environment. This command causes no \pfont\ commands to be
- issued.
-
- \bold{indent} The {\ss indent} command is used to change the
- paragraph indentation tex is using. This indentation is part of
- the tex environment. The use of the {\ss indent} command is
- discussed in the main body of the manual. It causes no \pfont\
- commands to be issued.
-
- \bold{rtmarg} The {\ss right} command is analogous to the {\ss
- lftmarg} command. It is currently disabled.
-
- \bold{mathonly} This command checks to see that tex is currently
- in math mode, and issues an error message if not. The correct
- usage is merely {\ss \\mathmode.} This command should be used by
- builders of macro packages to flag commands that should only be
- issued in math mode. No \pfont\ commands are issued.
-
- \bold{par} The {\ss par} command forces a paragraph output. It
- could probably be made a define, but I don't see any point in it
- yet. Its usage is discussed in the main body of the manual. No
- \pfont\ commands are issued.
-
- \bold{eject} The {\ss eject} command is used to force a new page.
- The string {\ss \\b<newline>\\p} is issued to pfont. Therefore,
- the trailing line will not be justified, and the next line will
- start on a new page.
-
- \bold{ctr} This command is used to center text. The form is {\ss
- \\ctr\{text\}.} The \pfont\ command {\ss \\c} is issued, followed
- by the text of the argument. Note that \pfont\ will center any
- text that follows the {\ss ctr} command, unless other commands
- are issued.
-
- \bold{rt} The {\ss rt} command is used to force text to the right
- side of the line. Usage is {\ss \\rt\{text\}.} The pfont command
- {\ss \\r} is isued, followed by the text of the argument,
- followed by a newline character.
-
- \bold{lft} The {\ss lft} command is used to force text to the
- left side of the line. Usage is {\ss \\lft\{text\}.} The pfont
- command {\ss \\b} is issued, followed by the text of the
- argument. Hence, the total effect of the {\ss lft} command is to
- turn off justification for the line it's issued on.
-
- \bold{vskip} This command is used to force a vertical skip down
- the page. Usage is discussed in the main body of the manual. The
- \pfont\ command {\ss \\b} is issued, followed by a {\ss \\v}
- command to cause the skip. Thus, the line the {\ss vskip} is
- issued on will not be justified, and the next line will occur the
- appropriate number of points down the page.
-
- \bold{hskip} The {\ss hskip command} is used to skip horizontally
- across the page. Usage is discussed in the main body of the
- manual. The \pfont\ command {\ss \\i} is issued to cause the skip.
-
- \bold{char} This command is used to force some non-printable
- ascii character into the output stream. Usage is {\ss \\char
- xxx}. The ascii character corresponding to the decimal value of
- {\ss xxx} will be inserted into the output stream. Normally, the
- appropriate ascii character is output. However, there are a
- couple of cases where the \pfont\ command {\ss \\d} is used.
-
- \bold{underline} The {\ss underline} command is used to underline
- text in the output document. Usage is {\ss \\underline\{text\}.}
- The output to pfont is {\ss \\utext of argument\\u.}
-
- \bold{input} The input command is used to fetch text from another
- file. Usage is discussed in the main body of the manual. No
- \pfont\ commands are generated.
-
- \bold{ff} This command is used to pass page formatting
- information to \pfont. Usage is discussed in the main body of the
- manual. No pfont commands are generated, but its argument is
- passed to pfont on the command line.
-
- } % end of Appendix B
-
- \heading{Appendix C}
-
- This appendix describes the commands available in math mode.
- These commands should be independent of the macro package you are
- using. The command set is broken up into pieces. The description
- of each piece of the command set consists of a brief discussion
- of that particular piece, followed by a table that has each
- command listed beside the resulting graphics character.
-
- The first piece of the command set is the Greek alphabet. The
- upper case Greek characters that are not also part of the English
- alphabet are included, as:{\fill 0\ss{}
-
- \lft{Gamma, $\Gamma$} \ctr{Delta, $\Delta$} \rt{Xi, $\Xi$}
- \lft{Theta, $\Theta$} \ctr{Lambda, $\Lambda$} \rt{Pi, $\Pi$}
- \lft{Phi, $\Phi$} \ctr{Sigma, $\Sigma$} \rt{Upsilon, $\Upsilon$}
- \lft{Omega, $\Omega$} \ctr{Psi, $\Psi$}}
-
- The entire lower case Greek alphabet is available, including both
- forms of theta and and phi. Note that the {\bf case of the first
- character} in the command is significant, and that the case of
- the first character is the only thing that differentiates the
- {\ss gamma ($\gamma$)} from the {\ss Gamma ($\Gamma$)} command.
- The commands for the lower case Greek characters are:{\fill 0
- \ss{}
-
- \lft{alpha, $\alpha$} \ctr{beta, $\beta$} \rt{gamma, $\gamma$}
- \lft{delta, $\delta$} \ctr{epsilon, $\epsilon$}\rt{xi, $\xi$}
- \lft{theta, $\theta$} \ctr{eta, $\eta$} \rt{iota, $\iota$}
- \lft{kappa, $\kappa$} \ctr{lambda, $\lambda$} \rt{mu, $\mu$}
- \lft{nu, $\nu$} \ctr{pi, $\pi$} \rt{phi, $\phi$}
- \lft{rho, $\rho$} \ctr{sigma, $\sigma$} \rt{tau, $\tau$}
- \lft{upsilon, $\upsilon$}\ctr{omega, $\omega$} \rt{chi, $\chi$}
- \lft{psi, $\psi$} \ctr{zeta, $\zeta$} \rt{vartheta, $\vartheta$}
- \lft{varphi, $\varphi$}}
-
- The upper case script characters are also available in math mode.
- These characters are from the standard {\FF Fancy Font} script
- character set, which is probably available with the macro package
- you are using. They are provided in math mode as a convenience
- for the user. They are:{\fill 0\ss{}
-
- \lft{Ascr, $\Ascr$} \ctr{Bscr, $\Bscr$} \rt{Cscr, $\Cscr$}
- \lft{Dscr, $\Dscr$} \ctr{Escr, $\Escr$} \rt{Fscr, $\Fscr$}
- \lft{Gscr, $\Gscr$} \ctr{Hscr, $\Hscr$} \rt{Iscr, $\Iscr$}
- \lft{Jscr, $\Jscr$} \ctr{Kscr, $\Kscr$} \rt{Lscr, $\Lscr$}
- \lft{Mscr, $\Mscr$} \ctr{Nscr, $\Nscr$} \rt{Oscr, $\Oscr$}
- \lft{Pscr, $\Pscr$} \ctr{Qscr, $\Qscr$} \rt{Rscr, $\Rscr$}
- \lft{Sscr, $\Sscr$} \ctr{Tscr, $\Tscr$} \rt{Uscr, $\Uscr$}
- \lft{Vscr, $\Vscr$} \ctr{Wscr, $\Wscr$} \rt{Xscr, $\Xscr$}
- \lft{Yscr, $\Yscr$} \ctr{Zscr, $\Zscr$}}
-
- There is a large selection of binary relations. These are:{\fill 0\ss{}
-
- \lft{normal, $\normal$} \ctr{noteq, $\noteq$} \rt{eqv, $\eqv$}
- \lft{supset, $\supset$} \ctr{subset, $\subset$} \rt{in, $\in$}
- \lft{notin, $\notin$} \ctr{perp, $\perp$} \rt{le, $\le$}
- \lft{ge, $\ge$} \ctr{onlyif, $\onlyif$} \rt{implies, $\implies$}
- \lft{if, $\if$} \ctr{iff, $\iff$} \rt{mapsto, $\mapsto$}
- \lft{lsls, $\lsls$} \ctr{grgr, $\grgr$} \rt{simeq, $\simeq$}
- \lft{approx, $\approx$} \ctr{doteq, $\doteq$}}
-
- There is also a variety of binary operators available in tex. These
- are:{\fill 0\ss{}
-
- \lft{pm, $\pm$} \ctr{mp, $\mp$} \rt{times, $\times$}
- \lft{div, $\div$} \ctr{odot, $\odot$} \rt{oplus, $\oplus$}
- \lft{odiv, $\odiv$} \ctr{ominus, $\ominus$} \rt{otimes, $\otimes$}
- \lft{cdot, $\cdot$} \ctr{union, $\union$} \rt{inter, $\inter$}
- \lft{and, $\and$} \ctr{or, $\or$}}
-
- In addition to the binary operators, the following unary
- operators are avialable:{\fill 0\ss{}
-
- \lft{partial, $\partial$}\ctr{surd, $\surd$} \rt{int, $\int$}
- \lft{oint, $\oint$} \ctr{sum, $\sum$} \rt{prod, $\prod$}
- \lft{prime, $\prime$}}
-
- There are also a several different flavors of arrows. Note that
- there is no right arrow as such. The arrows that are there
- are:{\fill 0\ss{}
-
- \lft{up, $\up$} \rt{bigup, $\bigup$}
- \lft{down, $\down$} \rt{bigdown, $\bigdown$}
- \lft{left, $\left$} \rt{bigleft, $\bigleft$}
- \lft{right,$\right$} \rt{bigright, $\bigright$}}
-
- The following miscellaneous math symbols can also be used:{\fill 0\ss{}
-
- \lft{thereis, $\thereis$}\ctr{forall, $\forall$}\rt{therfor, $\therfor$}
- \lft{cdots, $\cdots$} \ctr{cdotss, $\cdotss$} \rt{nabla, $\nabla$}
- \lft{imag, $\imag$} \ctr{natural, $\natural$}\rt{rat, $\rat$}
- \lft{real, $\real$} \ctr{integer, $\integer$}\rt{complex, $\complex$}
- \lft{top, $\top$} \ctr{bot, $\bot$} \rt{aleph, $\aleph$}
- \lft{iit, $\iit$} \ctr{jit, $\jit$} \rt{angle, $\angle$}
- \lft{infty, $\infty$} \ctr{emptyset, $\emptyset$}}
-
- The following commands are useful as paired delimiters:{\fill 0\ss{}
-
- \lft{lfloor, $\lfloor$} \rt{rfloor, $\rfloor$}
- \lft{lceil, $\lceil$} \rt{rceil, $\rceil$}
- \lft{langle, $\langle$} \rt{rangle, $\rangle$}
- \lft{dleft, $\dleft$} \rt{dright, $\dright$}}
-
- There are many operators that appear in formulas that {\it should
- not} be set in the same face as the surrounding formula. These
- are usually set in the face of the surrounding text. tex provides
- the following such operators:{\fill 0\ss{}
-
- \lft{cos, $\cos$} \ctr{cot, $\cot$} \rt{csc, $\csc$}
- \lft{sin, $\sin$} \ctr{sec, $\sec$} \rt{tan, $\tan$}
- \lft{exp, $\exp$} \ctr{ln, $\ln$} \rt{log, $\log$}
- \lft{lim, $\lim$} \ctr{liminf, $\liminf$} \rt{limsup, $\limsup$}
- \lft{min, $\min$} \ctr{max, $\max$} \rt{Pr, $\Pr$}
- \lft{sup, $\sup$} \ctr{inf, $\inf$} \rt{lg, $\lg$}
- \lft{det, $\det$} \ctr{gcd, $\gcd$} \rt{modop, $\modop$}}
-
- There are three math mode commands that use arguments. These are
- the super and sub script command, and the modulo operator. The
- following table is similar to the preceding tables, except that
- the string used to generate the glyph is {\ss A\\?\{exg\},} where
- the {\ss ?} is the command entered in the table. {\fill 0\ss{}
-
- \lft{mod, $A\mod{exg}$} \ctr{+, $A\+{exg}$} \rt{-, $A\-{exg}$}}
-
- Finally, there is a collection of math mode commands to generate
- miscellaneous characters that are not associated with
- mathematics, but are generally useful. These are listed in the
- section on math mode, and repeated here for completeness.{\fill 0\ss{}
-
- \lft{$\$$, $\$$} \ctr{$\#$, $\#$} \rt{dag, $\dag$}
- \lft{ddag, $\ddag$} \ctr{ldots, $\ldots$} \rt{ldotss, $\ldotss$}
- \lft{circ, $\circ$} \ctr{bullet, $\bullet$} \rt{copyright, $\copyright$}
- \lft{section, $\section$}}
-
- \ctr{max, $\max$}